package com.demo.java.OD1_50.OD29;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【勾股数元组】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145538524
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 最小整数
        int m = scanner.nextInt();  // 最大整数
        boolean flag = true;  // 用于检查是否找到符合条件的三元组

        // 使用三重循环寻找所有可能的 (a, b, c)
        for (int i = n; i < m - 1; i++) {
            for (int j = i + 1; j < m; j++) {
                for (int k = j + 1; k <= m; k++) {
                    // 检查是否满足条件 a^2 + b^2 = c^2 且三者互质
                    if (isRelativelyPrime(i, j) && isRelativelyPrime(i, k) && isRelativelyPrime(j, k) && i * i + j * j == k * k) {
                        System.out.println(i + " " + j + " " + k);  // 输出符合条件的三元组
                        flag = false;  // 找到符合条件的三元组，修改标志
                    }
                }
            }
        }

        // 如果没有找到符合条件的三元组，输出 "NA"
        if (flag) {
            System.out.println("NA");
        }

        scanner.close();
    }

    // 计算最大公约数 (gcd)，用于检查 a, b, c 是否互质
    private static boolean isRelativelyPrime(int a, int b) {
        return gcd(a, b) == 1;
    }

    // 计算两个数的最大公约数
    private static int gcd(int a, int b) {
        while (b != 0) {
            int temp = a % b;
            a = b;
            b = temp;
        }
        return a;
    }
}